package src.itheima03;

import java.util.HashMap;
import java.util.Map;

/*
    统计字符个数的代码实现
        步骤:
            1.获取字符串(直接定义/键盘录入)
            2.创建Map集合对象,键: Character,值: Integer
            3.遍历字符串
            4.获取字符串中的当前字符,保存在字符变量ch中
            5.Map集合对象调用containsKey方法,传递ch作为键,获取boolean结果
            6.如果boolean结果: false
            7.Map集合对象调用put方法,ch作为键,1作为值,存储到Map集合中
            8.如果boolean结果: true
            9.Map集合对象调用get方法,ch作为键,获取值(ch已经出现的次数),保存到int边练num中
            10.num的值自增1
            11.Map集合对象调用put方法,ch作为键,num作为值,存储到Map集合中
            12.遍历输出Map集合中的内容
 */
public class Demo05MapCount {
    public static void main(String[] args) {
        //1.获取字符串(直接定义/键盘录入)
        String str = "aabbbccccdddddeefff";

        //2.创建Map集合对象,键: Character,值: Integer
        Map<Character,Integer> map = new HashMap<>();

        //3.遍历字符串
        for(int i = 0;i<str.length();i++) {
            //4.获取字符串中的当前字符,保存在字符变量ch中
            char ch = str.charAt(i);

            //思考: 能否一句话搞定

            //5.Map集合对象调用containsKey方法,传递ch作为键,获取boolean结果
            if(!map.containsKey(ch)) {
                //6.如果boolean结果: false
                //7.Map集合对象调用put方法,ch作为键,1作为值,存储到Map集合中
                map.put(ch,1);
            } else {
                //8.如果boolean结果: true
                //9.Map集合对象调用get方法,ch作为键,获取值(ch已经出现的次数),保存到int边练num中
                int num = map.get(ch);
                //10.num的值自增1
                num++;
                //11.Map集合对象调用put方法,ch作为键,num作为值,存储到Map集合中
                map.put(ch,num);
            }
        }
        //12.遍历输出Map集合中的内容
        System.out.println(map);
    }
}
